#ifndef DW_GRAPHICS_FONT_H
#	define DW_GRAPHICS_FONT_H

namespace dw
{
	namespace graphics
	{

		class Font
		{
		public:

			int _width;
			int _height;

			struct Glyph
			{
				int xoffset;
				int yoffset;
				int width;
				int height;
				int xadvance;
				int yadvance;
				GLuint texID;
			};

		public:

			Font(const std::string& filename, const unsigned size);

			~Font();

			Glyph getGlyph(const char c);

			unsigned getSize() const { return _size; }
		
		private:

			typedef std::map<char, Glyph> GlyphMap;

		private:

			GlyphMap _glyphMap;
			
			unsigned _size;

			FT_Library _ftLibrary;

			FT_Face _ftFace;

		};

	} // namespace graphics
} // namespace dw

#endif // !DW_GRAPHICS_FONT_H
